1. Field of the Invention
The present invention generally relates to computer systems and, more particularly, to a progress-indicating pointer in a graphical user interface.
2. Description of the Related Art
The basic structure of a conventional computer system 10 is shown in FIG. 1. The heart of computer system 10 is a central processing unit (CPU) or processor 12 which is connected to several peripheral devices, including input/output (I/O) devices 14 (such as a display monitor, pointing device, and keyboard) for the user interface, a permanent memory device 16 (such as a hard disk or floppy diskette) for storing the computer's operating system and user programs, and a temporary memory device 18 (such as random-access memory or RAM) that is used by processor 12 to carry out program instructions. Processor 12 communicates with the peripheral devices by various means, including a bus 20 or a direct channel 22. Computer system 10 may have many additional components which are not shown, such as serial and parallel ports for connection to, e.g., modems or printers. Those skilled in the art will further appreciate that there are other components that might be used in conjunction with those shown in the block diagram of FIG. 1; for example, a display adapter connected to processor 12 might be used to control a video-display monitor, and a memory controller may be used as an interface between temporary memory device 18 and processor 12. Computer system 10 also includes firmware 24 whose primary purpose is to seek out and load an operating system from one of the peripherals (usually permanent memory device 16) whenever the computer is first turned on.
Several conventional operating systems provide graphical user interfaces (GUIs) which allow a pointing device, such as a mouse, to manipulate a visual pointer on the display device (video monitor). The visual pointer typically takes the form of an arrowhead, although other shapes are also used, such as crosshairs, a vertical line (caret or I-beam), or a hand. The pointer is used to select text, activate buttons, and perform other operations, such as "drag-and-drop" operations.
Many graphical user interfaces display a different shape or design of the pointer to indicate that a task is in progress and may take some time to complete. Several examples of such pointer designs are shown in FIGS. 2A-2C. FIG. 2A depicts a wristwatch icon, while FIG. 2B depicts an hourglass icon, and FIG. 2C depicts a clock icon. These icons are typically used only when a task will take a short time to complete. They are often static; that is, they do not change shape or appearance while the task is in progress, although some operating systems or user applications allow them to change shape to indicate that the task is still underway. For example, the wristwatch and clock icons of FIGS. 2A and 2C may show one of the hands (e.g., the second hand) moving, and the hourglass of FIG. 2B may be occasionally filled and rotated (inverted), during the task duration. Nevertheless, these icons do not indicate the progress of the task, i.e., how much of the task is completed but, rather, only indicate that the task is still active.
Other than the foregoing change in the design of a pointer icon, most graphical user interfaces standardize on only one other means to indicate to the user that a task is in progress and will take some time to complete. For tasks estimated to be of long duration, a progress window is often painted on the screen. This indicator typically takes the form of a horizontal bar which fills in (from left-to-right) proportionate to the amount of the task completed, as illustrated in FIG. 3.
The first form of a task indicator (FIGS. 2A-2C) is uninformative; the only information the user can perceive about task duration is that it will be less than the amount that the programmer deemed appropriate for use of the second indicator type (FIG. 3). That is, all the user knows is that the wait time will be "short." However, it is not always appropriate to use the second type of indicator for short tasks. It is inappropriate to use the second form of progress indicator (FIG. 3) as the visual impact of window creation and deletion is distracting. Also, the CPU resource consumed by window creation, updating, and deletion may actually be significant relative to the duration of the task itself. It would, therefore, be desirable to provide a resource-sparing indicator that visually informs the user of how much of a task is complete. It would be further advantageous if this indicator were able to provide information on the task progress in an intuitive but non-intrusive (non-distracting) manner.